// 直接在Arduino IDE选择“文件”→“示例”→Wire→slave_receiver，可以打开该文件
#include <Wire.h>
#define test 0
#define SDA 21
#define SCL 22

void setup() {
#if test
  pinMode(SDA, INPUT_PULLUP);
  pinMode(SCL, INPUT_PULLUP);
#else               // Wire初始化, 并以从设备地址8的身份加入IIc总线
  Wire.setPins(SDA, SCL);
  Wire.begin(8);  
  Wire.onReceive(receiveEvent);  // 注册一个IIC事件，用于响应主机的数据发送
#endif


  Serial.begin(115200);  // 初始化串口并设置波特率为9600
  Serial.println("Begin");
}

void loop() {
#if test
  bool s1 = digitalRead(SDA);
  bool s = digitalRead(SCL);
  Serial.printf("pin SDA= %d pin SCL=%d \n", s1, s);
#else
  delay(100);
#endif
}

// 当主机发送的数据被收到时，将触发 receiveEvent() 事件
void receiveEvent(int howMany) {
  // 循环读取收到的数据，最后一个数据单独读取
  Serial.println("Rec:");
  while (1 < Wire.available()) {
    char c = Wire.read();  // 以字符形式接收数据
    Serial.print(c);       // 串口输出该字符串

  }
  Serial.println("");
  // int x = Wire.read();  // 以整型形式接收数据
  // Serial.println(x);    // 串口输出该整型变量
}
